-- spProductorSel 7,null,null,null,11,null,null,null
alter procedure spProductorSel
  @Codigo int = null,
  @Nombre varchar (100) = null,
  @Apellido varchar (100)=null,
  @Documento int = null
 
with encryption
as
	declare @intError int
	begin transaction

	Select p.Codigo, p.Nombre, p.Apellido,p.TipoDocumento_Codigo, p.Documento, p.RazonSocial, p.CUIT, p.Descripcion,p.Localidad_Codigo,l.Nombre as LocalidadNom,p.DomicilioCalle, p.DomicilioNumero, p.DomicilioPiso, p.DomicilioDepto,p.EstadoProductor_Codigo
	from Productor p
	inner join TipoDocumento td on p.TipoDocumento_Codigo = td.Codigo
	inner join Localidad l on l.Codigo = p.Localidad_Codigo
	inner join EstadoProductor ep on ep.Codigo= p.EstadoProductor_Codigo
	inner join Provincia pr on pr.Codigo = l.Provincia_Codigo
	inner join Pais pa on pa.Codigo = pr.Pais_Codigo 
		where p.Codigo = isnull(@Codigo,p.Codigo)  
		  and p.Nombre  like '%'+ isnull(@Nombre,p.Nombre)  + '%'
		  and p.Apellido like '%'+ isnull (@Apellido, p.Apellido)+ '%'
		  and p.Documento = '%'+ isnull (@Documento, p.Documento)+ '%'
		  
    set @intError = @@Error
    if (@intError <> 0) goto onError
  
	commit transaction
	return @intError

onError:
  if @@TranCount > 0 rollback transaction
  return @intError
go